/**
 * Camera.h
 *
 * Author:
 *   Chris Herbison
 *
 * Description:
 *   Header file for the Camera class.
 */

#ifndef CAMERA_H
#define CAMERA_H

#include "ToneReproductionModel.h"
#include "vecmath.h"
#include "World.h"

const MyColor BG_COLOR(0.5, 0.7, 0.7, 0);

class Camera{
     public:
          Camera(Point3 _position, Vector3 _lookAt, Vector3 _up, int _screenWidth, int _screenHeight, ToneReproductionModel* _toneModel = NULL);
          void render(World w);

          Point3 position;
          Vector3 lookAt, up;
          vector<MyColor> screen;
     private:
          double luminance(MyColor lColor);
		  int screenWidth;
		  int screenHeight;
		  ToneReproductionModel* toneModel;
};

#endif
